home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / dsytrf.z / dsytrf
Encoding:
Text File  |  2002-10-03  |  7.1 KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))                                                          DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DSYTRF - compute the factorization of a real symmetric matrix A using the
  10.      Bunch-Kaufman diagonal pivoting method
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE DSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, LDA, LWORK, N
  18.  
  19.          INTEGER        IPIV( * )
  20.  
  21.          DOUBLE         PRECISION A( LDA, * ), WORK( * )
  22.  
  23. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  24.      These routines are part of the SCSL Scientific Library and can be loaded
  25.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  26.      directs the linker to use the multi-processor version of the library.
  27.  
  28.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  29.      4 bytes (32 bits). Another version of SCSL is available in which integers
  30.      are 8 bytes (64 bits).  This version allows the user access to larger
  31.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  32.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  33.      only one of the two versions; 4-byte integer and 8-byte integer library
  34.      calls cannot be mixed.
  35.  
  36. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  37.      DSYTRF computes the factorization of a real symmetric matrix A using the
  38.      Bunch-Kaufman diagonal pivoting method. The form of the factorization is
  39.  
  40.         A = U*D*U**T  or  A = L*D*L**T
  41.  
  42.      where U (or L) is a product of permutation and unit upper (lower)
  43.      triangular matrices, and D is symmetric and block diagonal with 1-by-1
  44.      and 2-by-2 diagonal blocks.
  45.  
  46.      This is the blocked version of the algorithm, calling Level 3 BLAS.
  47.  
  48.  
  49. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  50.      UPLO    (input) CHARACTER*1
  51.              = 'U':  Upper triangle of A is stored;
  52.              = 'L':  Lower triangle of A is stored.
  53.  
  54.      N       (input) INTEGER
  55.              The order of the matrix A.  N >= 0.
  56.  
  57.      A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
  58.              On entry, the symmetric matrix A.  If UPLO = 'U', the leading N-
  59.              by-N upper triangular part of A contains the upper triangular
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))                                                          DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))
  71.  
  72.  
  73.  
  74.              part of the matrix A, and the strictly lower triangular part of A
  75.              is not referenced.  If UPLO = 'L', the leading N-by-N lower
  76.              triangular part of A contains the lower triangular part of the
  77.              matrix A, and the strictly upper triangular part of A is not
  78.              referenced.
  79.  
  80.              On exit, the block diagonal matrix D and the multipliers used to
  81.              obtain the factor U or L (see below for further details).
  82.  
  83.      LDA     (input) INTEGER
  84.              The leading dimension of the array A.  LDA >= max(1,N).
  85.  
  86.      IPIV    (output) INTEGER array, dimension (N)
  87.              Details of the interchanges and the block structure of D.  If
  88.              IPIV(k) > 0, then rows and columns k and IPIV(k) were
  89.              interchanged and D(k,k) is a 1-by-1 diagonal block.  If UPLO =
  90.              'U' and IPIV(k) = IPIV(k-1) < 0, then rows and columns k-1 and
  91.              -IPIV(k) were interchanged and D(k-1:k,k-1:k) is a 2-by-2
  92.              diagonal block.  If UPLO = 'L' and IPIV(k) = IPIV(k+1) < 0, then
  93.              rows and columns k+1 and -IPIV(k) were interchanged and
  94.              D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
  95.  
  96.      WORK    (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
  97.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  98.  
  99.      LWORK   (input) INTEGER
  100.              The length of WORK.  LWORK >=1.  For best performance LWORK >=
  101.              N*NB, where NB is the block size returned by ILAENV.
  102.  
  103.              If LWORK = -1, then a workspace query is assumed; the routine
  104.              only calculates the optimal size of the WORK array, returns this
  105.              value as the first entry of the WORK array, and no error message
  106.              related to LWORK is issued by XERBLA.
  107.  
  108.      INFO    (output) INTEGER
  109.              = 0:  successful exit
  110.              < 0:  if INFO = -i, the i-th argument had an illegal value
  111.              > 0:  if INFO = i, D(i,i) is exactly zero.  The factorization has
  112.              been completed, but the block diagonal matrix D is exactly
  113.              singular, and division by zero will occur if it is used to solve
  114.              a system of equations.
  115.  
  116. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  117.      If UPLO = 'U', then A = U*D*U', where
  118.         U = P(n)*U(n)* ... *P(k)U(k)* ...,
  119.      i.e., U is a product of terms P(k)*U(k), where k decreases from n to 1 in
  120.      steps of 1 or 2, and D is a block diagonal matrix with 1-by-1 and 2-by-2
  121.      diagonal blocks D(k).  P(k) is a permutation matrix as defined by
  122.      IPIV(k), and U(k) is a unit upper triangular matrix, such that if the
  123.      diagonal block D(k) is of order s (s = 1 or 2), then
  124.  
  125.                 (   I    v    0   )   k-s
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))                                                          DDDDSSSSYYYYTTTTRRRRFFFF((((3333SSSS))))
  137.  
  138.  
  139.  
  140.         U(k) =  (   0    I    0   )   s
  141.                 (   0    0    I   )   n-k
  142.                    k-s   s   n-k
  143.  
  144.      If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).  If s = 2,
  145.      the upper triangle of D(k) overwrites A(k-1,k-1), A(k-1,k), and A(k,k),
  146.      and v overwrites A(1:k-2,k-1:k).
  147.  
  148.      If UPLO = 'L', then A = L*D*L', where
  149.         L = P(1)*L(1)* ... *P(k)*L(k)* ...,
  150.      i.e., L is a product of terms P(k)*L(k), where k increases from 1 to n in
  151.      steps of 1 or 2, and D is a block diagonal matrix with 1-by-1 and 2-by-2
  152.      diagonal blocks D(k).  P(k) is a permutation matrix as defined by
  153.      IPIV(k), and L(k) is a unit lower triangular matrix, such that if the
  154.      diagonal block D(k) is of order s (s = 1 or 2), then
  155.  
  156.                 (   I    0     0   )  k-1
  157.         L(k) =  (   0    I     0   )  s
  158.                 (   0    v     I   )  n-k-s+1
  159.                    k-1   s  n-k-s+1
  160.  
  161.      If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).  If s = 2,
  162.      the lower triangle of D(k) overwrites A(k,k), A(k+1,k), and A(k+1,k+1),
  163.      and v overwrites A(k+2:n,k:k+1).
  164.  
  165.  
  166. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  167.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  168.  
  169.      This man page is available only online.
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.